package com.project.mapper;

import com.project.bean.EmployeeBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IStaffMapper {
    /**
     * 添加员工
     * @param employee 员工对象
     */
    void addEmployee(EmployeeBean employee);

    /**
     * 员工离职，通过员工id将员工状态改为离职，并且将员工参与的项目完成日期修改为当前
     * @param empID 员工id
     * @param status 员工状态
     */
    void UpdateStatus(@Param("empID") int empID, @Param("status") String status);

    /**
     * 修改员工的信息，先通过id查询出该员工的基本信息，再通过id修改员工工资和电话
     * @param empID 员工id
     * @param phone 员工电话
     * @param salary 员工工资
     */
    void updateInfo(@Param("id") int empID,@Param("phone") String phone,@Param("salary") int salary);

    /**
     * 通过id查询该员工的全部信息，包括参与的项目，和项目基本信息
     * @param empID 员工id
     * @return 员工对象
     */
    EmployeeBean findByID(int empID);

    /**
     * 动态条件查询不在指定项目的员工，项目编号为固定条件，员工的姓名和专长为动态条件
     * @param name 员工姓名
     * @param Specialty 员工专长
     * @return 员工集合
     */
    List<EmployeeBean> findStaff(@Param("name") String name,@Param("speciality") String Specialty,@Param("status") String status);
    /** 动态条件分页查询员工信息
     * @param name 员工名
     * @param specialty 员工专长
     * @param state 员工状态
     * @param order 排序规则
     * @return 员工分页对象
     */
    List<EmployeeBean> findByItem(@Param("name") String name,@Param("speciality") String specialty, @Param("status") String state, @Param("sort") String order);
}
